package com.hsgene.goods.exception;

import com.hsgene.common.util.exception.ErrorCode;

/**
 * 商品错误码
 *
 * @author wangbing
 * @version 1.0, 2018/7/13
 */
public enum GoodsErrorCode implements ErrorCode {

    /**
     * 商品信息不存在
     */
    GOODS_NOT_EXISTED(12001, "Error_Goods_Goods_Not_Existed", "商品信息不存在"),

    /**
     * 商品信息未完善，不允许发布
     */
    GOODS_RELEASE_INCOMPLETE(12002, "Error_Goods_Release_Incomplete", "商品信息未完善，不允许发布"),

    /**
     * 商品已发布，不允许修改
     */
    GOODS_UPDATE_RELEASED(12003, "Error_Goods_Update_Released", "商品已发布，不允许修改"),

    /**
     * 商城商品不存在
     */
    GOODS_MALL_NOT_EXISTED(12004, "Error_Goods_Goods_Mall_Not_Existed", "商城商品不存在"),

    /**
     * %s不能为空
     */
    GOODS_ITEM_CANNOT_EMPTY(12005, "Error_Goods_Goods_Item_Cannot_Empty", "%s不能为空"),

    /**
     * 商品名称重复
     */
    GOODS_NAME_DUPLICATION(12006, "Error_Goods_Goods_Name_Duplication", "商品名称重复"),

    /**
     * 商品未发布
     */
    GOODS_NOT_RELEASE(12007, "Error_Goods_Not_Release", "商品未发布"),

    /**
     * 商品不是待审核状态，不允许进行审核操作
     */
    GOODS_NOT_AUDIT(12008, "Error_Goods_Not_Audit_Status", "商品不是待审核状态，不允许进行审核操作"),

    /**
     * 商品未完善不允许上架
     */
    GOODS_MALL_ONLINE_INCOMPLETE(12009, "Error_Goods_Mall_Online_Incomplete", "商品未完善不允许上架"),

    /**
     * 商品未上架，不允许执行下架操作
     */
    GOODS_MALL_OFFLINE_NOT_ONLINE(12010, "Error_Goods_Mall_Offline_Not_Online", "商品未上架，不允许执行下架操作"),

    /**
     * 商品发布审核中，请勿重复提交
     */
    GOODS_RELEASE_COMPLETE_NOT_AUDITED(12011, "Error_Goods_Release_Complete_Not_Audited", "商品发布审核中，请勿重复提交"),

    /**
     * 商品撤销发布审核中，不允许提交发布申请
     */
    GOODS_RELEASE_REVOCATION_NOT_AUDIT(12012, "Error_Goods_Release_Revocation_Not_Audit", "商品撤销发布审核中，不允许提交发布申请"),

    /**
     * 商品已发布，请勿重复提交发布申请
     */
    GOODS_RELEASE_PUBLISHED(12013, "Error_Goods_Release_Published", "商品已发布，请勿重复提交发布申请"),

    /**
     * 商品撤销发布审核中，请勿重复提交撤销发布申请
     */
    GOODS_REVOCATION_REVOCATION_NOT_AUDIT(12014, "Error_Goods_Revocation_Revocation_Not_Audit", "商品撤销发布审核中，请勿重复提交撤销发布申请"),

    /**
     * 已终止的商品不允许上架
     */
    GOODS_MALL_ONLINE_TERMINATION(12015, "Error_Goods_Mall_Online_Termination", "已终止的商品不允许上架"),

    /**
     * 商品下架审核中，不允许上架
     */
    GOODS_MALL_ONLINE_OFFLINE_NOT_AUDIT(12016, "Error_Goods_Mall_Online_Offline_Not_Audit", "商品下架审核中，不允许上架"),

    /**
     * 商品上架审核中，请勿重复提交
     */
    GOODS_MALL_ONLINE_ONLINE_NOT_AUDIT(12017, "Error_Goods_Mall_Online_Online_Not_Audit", "商品上架审核中，请勿重复提交"),

    /**
     * 商品下架审核中，请勿重复提交
     */
    GOODS_MALL_OFFLINE_OFFLINE_NOT_AUDIT(12018, "Error_Goods_Mall_Online_Offline_Not_Audit", "商品下架审核中，请勿重复提交"),

    /**
     * 商城商品不是待审核状态，不允许进行审核操作
     */
    GOODS_MALL_NOT_AUDIT(12019, "Error_Goods_Mall_Not_Audit_Status", "商城商品不是待审核状态，不允许进行审核操作"),

    /**
     * 商品未上架
     */
    GOODS_MALL_NOT_ONLINE(12020, "Error_Goods_Mall_Not_Online", "商品未上架"),

    /**
     * 商品库存不足
     */
    GOODS_MALL_INVENTORY_NOT_ENOUGH(12021, "Error_Goods_Mall_Inventory_Not_Enough", "商品库存不足"),

    /**
     * 商品快照信息不存在
     */
    GOODS_MALL_SNAPSHOOT_NOT_EXISTED(12022, "Error_Goods_Mall_Snapshoot_Not_Existed", "商品快照信息不存在"),

    /**
     * 商品快照信息不存在
     */
    GOODS_ORIGIN_SNAPSHOOT_NOT_EXISTED(12023, "Error_Goods_Origin_Snapshoot_Not_Existed", "商品快照信息不存在"),

    /**
     * 商品类别信息不存在
     */
    GOODS_MALL_CATEGORY_ERROR(12024, "Error_Goods_Mall_Category_Error", "商品类别信息不存在"),

    /**
     * 上架中的商品不允许修改
     */
    GOODS_MALL_UPDATE_ONLINE(12025, "Error_Goods_Mall_Update_Online", "上架中的商品不允许修改"),

    /**
     * 审核中的商品不允许修改
     */
    GOODS_MALL_UPDATE_AUDITED(12026, "Error_Goods_Mall_Update_Audited", "审核中的商品不允许修改"),

    /**
     * 已终止的商品不允许修改
     */
    GOODS_MALL_UPDATE_TERMINATION(12027, "Error_Goods_Mall_Update_Termination", "已终止的商品不允许修改"),

    /**
     * 供应商已被删除
     */
    GOODS_ORIGIN_SUPPLIER_DELETED(12028, "Error_Goods_Origin_Supplier_Not_Existed", "供应商已被删除"),

    /**
     * 商品已上架
     */
    GOODS_MALL_ONLINED(12029, "Error_Goods_Mall_Onlined", "商品已上架");

    /**
     * 错误码
     */
    private final int code;

    /**
     * 错误信息
     */
    private final String message;

    /**
     * 错误描述
     */
    private final String description;

    GoodsErrorCode(int code, String message, String description) {
        this.code = code;
        this.message = message;
        this.description = description;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }

    @Override
    public String getDescription() {
        return description;
    }
}
